﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Cotizav.CONEXION;
using Cotizav.CONTROLADOR.Otros;

namespace Cotizav.PRESENTACION.Familia
{
    public partial class PanelSelectMarca : Form
    {
        CtrlMarca ctMarca;
        List<MARCA> sentMarcas;
        List<MARCA> selectedMarcas;

        public List<MARCA> SelectedMarcas
        {
            get { return selectedMarcas; }
            set { selectedMarcas = value; }
        }
        
        public PanelSelectMarca()
        {
            InitializeComponent();
            ctMarca = new CtrlMarca();

            sentMarcas = new List<MARCA>();
            selectedMarcas = new List<MARCA>();
        }

        public PanelSelectMarca(List<MARCA> marcas) : this()
        {
            // TODO: Complete member initialization
            sentMarcas = marcas;
        }

        private void PanelSelectMarca_Load(object sender, EventArgs e)
        {
            List<MARCA> marcas = ctMarca.getListMarca();
            List<MARCA> distinctMarcas = marcas.Except(sentMarcas, new MarcaComparer()).ToList();
            
            gridMarcas.DataSource = null;
            gridMarcas.DataSource = distinctMarcas;
            setRowsReadOnly();
        }

        private void setRowsReadOnly()
        {
            foreach (DataGridViewRow dr in gridMarcas.Rows)
            {
                dr.ReadOnly = true;
            }
        }

        private void gridMarcas_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
        {
            if (gridMarcas.DataSource != null)
            {
                gridMarcas.Columns["idMarca"].Visible = false;
                gridMarcas.Columns["nombreMarca"].HeaderText = "Marca";
                gridMarcas.Columns["nombreMarca"].DisplayIndex = 1;
                gridMarcas.Columns["nombreMarca"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                gridMarcas.Columns["eliminado"].Visible = false;
                gridMarcas.Columns["prefijo"].HeaderText = "Prefijo";
                gridMarcas.Columns["prefijo"].DisplayIndex = 0;
                gridMarcas.Columns["statusflag"].Visible = false;
            }
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            if (gridMarcas.SelectedRows.Count > 0)
            {
                foreach (DataGridViewRow dr in gridMarcas.SelectedRows)
                {
                    MARCA selMarca = new MARCA()
                    {
                        idMarca = dr.Cells["idMarca"].Value.ToString() ?? string.Empty,
                        nombreMarca = dr.Cells["nombreMarca"].Value.ToString() ?? string.Empty,
                        prefijo = dr.Cells["prefijo"].Value.ToString() ?? string.Empty,
                        eliminado = Convert.ToInt32(dr.Cells["eliminado"].Value.ToString())
                        //statusflag = 'I'
                    };

                    selectedMarcas.Add(selMarca);
                }
            }
        }
    }
}
